<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Egreso_lst( $this );

	class Egreso_lst extends Lst
	{
	function Egreso_lst( &$oModule )
		{
			$this->Lst( $oModule );
			$this->oEntidad = new InputEntidad( 'Entidad', '' );
			$this->oEntidad->setDatabase( $this->oDatabase );
		}
	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'E':
					$this->aShowColumns = array( 'Codigo','Fecha','Destinatario','Confirmado' );
					break;
				case 'C':
					$this->aShowColumns = array( 'Nombre' );
					break;
				case 'L':
					$this->aShowColumns = array( 'Fecha','Solicitante', 'Destinatario','Confirmado' );
					break;
			}
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Egreso_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			
			$this->setTitle ( "Egreso" );
			$this->setSummary( "Esta tabla contiene los Egresos de los productos" );
			//$this->addColumn ( 'Codigo', 'ncEgreso' );
			$this->addColumn( 'Codigo', 'ncEgreso' );
			$this->addColumnDate( 'Fecha', 'dEgreso' );
			$this->addColumn ( 'Solicitante', '', 'ncSolicitante' );
			$this->addColumn ( 'Destinatario', '', 'ncDestinatario' );
			$this->addColumnBool ( 'Confirmado', 'bConfirmado' );
			$this->addColumn ( 'Nombre' );
			$this->oFecha = new DateObject();
			$this->oModAdministracion =& loadModule("administracion");
			$this->oPaging->setDefaultOrderBy("bConfirmado, dEgreso", false);
			$this->setColumnAction ( 'Fecha', VER_EGRESO, 'ncEgreso' );
			$this->setColumnAction ( 'Solicitante', VER_PERSONA, 'ncPersona' , '', &$this->oModAdministracion);
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'KeyDay':
				$this->oFecha->setValue( $aRow['dEgreso'] );
				$cReturn =  $this->oFecha->getValue();
				break;
			case 'Nombre':
				$cReturn = $this->oEntidad->getDescription( $aRow["ncTipoDestinatario"], $aRow["ncDestinatario"] );
				break;
			case 'Destinatario':
				if ( $this->oModule->getOutputType() != 'xls'  )
				{
					$cReturn = $this->oEntidad->getDescriptionAction( $aRow["ncTipoDestinatario"], $aRow["ncDestinatario"] ) ;
				} else{
					$cReturn = $this->oEntidad->getDescription( $aRow["ncTipoDestinatario"], $aRow["ncDestinatario"] ) ;
				}
				break;
			case 'Solicitante':
				$cReturn = $aRow['cApellido'] . ' ' . $aRow['cNombre'] ;
				break;
				default:
					return false;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Egr.ncEgreso, Egr.dSolicitud, Egr.dEgreso, Egr.ncSolicitante as ncPersona, Per.cApellido, Per.cNombre, Egr.ncTipoDestinatario, Egr.ncDestinatario, Egr.bConfirmado
							FROM gtEgreso as Egr
							LEFT JOIN atPersona as Per
								ON Per.ncPersona = Egr.ncSolicitante";
			// Arma el Filtro de la Consulta
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('Egr') );
				if ( $this->getOptionView() == 'C' ) list( $dDesde, $dHasta ) = $this->getDateRange();
				if ( $dDesde && $dHasta ) $this->oWhere->add( "Egr.dEgreso", "$dDesde,$dHasta", "between");
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_EGRESO, $cParametroRegistro, 'I'  );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncEgreso=" . $aRow["ncEgreso"] .  "&amp;ncTipoOrden=". TIPO_ORDEN_EGRESO. "&amp;ncOrden=" . $aRow["ncEgreso"];
			if ( $aRow['bConfirmado'] == 0 )
			{
				$this->addRowAction ( MODIFICAR_EGRESO, $cParametroRegistro );
				$this->addRowAction ( CONFIRMAR_EGRESO, $cParametroRegistro );
				$this->addRowAction ( ELIMINAR_EGRESO, $cParametroRegistro);
			} else
			{
				$this->addRowAction ( MODIFICAR_EGRESO, "bSoloDatos=1&amp;" . $cParametroRegistro );
				$this->addRowAction ( DESCONFIRMAR_EGRESO, $cParametroRegistro );
			}
		}
	function makeComplex()
		{
			$oLst = $this->oModule->loadClass ( "movimiento_lst" );
			$oLst->aFields['ncTipoOrden'] = TIPO_ORDEN_EGRESO;
			$oLst->aFields['ncOrden'] = $this->aFields['ncEgreso'];
			$oLst->makeLst();
		}
	}
?>